package com.example.graphic.service;

import com.baomidou.mybatisplus.core.metadata.IPage;
import com.example.graphic.AI.ImageDescriptionResponse;
import com.example.graphic.entity.Image;
import com.example.graphic.model.dto.ImageQueryDTO;
import com.example.graphic.model.vo.Result;
import org.springframework.web.multipart.MultipartFile;

import java.util.List;

/**
 * 图片服务接口
 */
public interface ImageService{

    /**
     * 批量上传图片到OSS
     * @param files 图片文件列表
     * @return 上传后的文件URL列表
     */
    List<String> uploadImages(List<MultipartFile> files,Long userId);

    /**
     * 分页条件查询图片
     * @param queryDTO 查询参数
     * @return 分页结果
     */
    IPage<Image> pageQuery(ImageQueryDTO queryDTO);

    /**
     * 为图片生成文案
     * @param imageUrl 图片URL
     * @param style 文案风格
     * @param tag 图片标签
     * @param prompt 场景提示词
     * @param userId 用户ID
     * @return 生成的文案文本
     */
    String generateCopywriting(String imageUrl, String style, String tag, String prompt, String userId);
    
    /**
     * 为图片生成文案并返回完整响应
     * @param imageUrl 图片URL
     * @param style 文案风格
     * @param tag 图片标签
     * @param prompt 场景提示词
     * @param userId 用户ID
     * @return 完整的文案响应对象
     */
    ImageDescriptionResponse generateCopywritingResponse(String imageUrl, String style, String tag, String prompt, String userId);


    Result uploadUrl(Long userId, List<String> urls);


    /**
     * 删除图片
     * @param imageId 图片ID
     * @return 删除结果
     */
    Result deleteImage(Long imageId);
}